package com.jmlee.mapper;

import com.jmlee.pojo.Role;
import org.apache.ibatis.session.RowBounds;

import java.util.List;

public interface RoleMapper {
    /**
     * 插入角色
     *
     * @param role
     * @return
     */
    Integer insertRole(Role role);

    /**
     * 修改角色
     *
     * @param role
     * @return
     */
    Integer updateRole(Role role);

    /**
     * 获取角色列表
     *
     * @return
     */
    List<Role> selectRoleList();

    List<Role> selectRoleList(RowBounds rowBounds);

    /**
     * 获取所有角色
     *
     * @param role
     * @return
     */
    List<Role> getRoleList(Role role);

    /**
     * 获取角色记录总数
     *
     * @return
     */
    Long selectRoleCount();

    /**
     * 检查角色是否已经拥有该权限
     *
     * @param rId 角色ID
     * @param mId 菜单ID
     * @return
     */
    Integer selectAuthorityByRole(Long rId, Long mId);


    /**
     * 给角色添加权限
     *
     * @param rId 角色ID
     * @param mId 菜单ID
     * @return
     */
    Integer insertAuthorityByRole(Long rId, Long mId);


    /**
     * 修改权限状态
     *
     * @param rId   权限记录ID
     * @param mId   菜单ID
     * @param state 权限状态
     * @return
     */
    Integer updateAuthorityById(Long rId, Long mId, Integer state);

    /**
     *
     */
    List<Long> selectMenuIdByRid(Long rId);

    /**
     * 删除角色
     *
     * @param role
     * @return
     */
    Integer deleteRoleById(Role role);

    Integer selectRoleByName(Role role);
}
